package cn.xtcode.service;

import cn.xtcode.domain.req.ShopCartReq;
import cn.xtcode.domain.res.PayOrderRes;

import java.util.List;

/**
 * @author: xt-code
 * @date: 2025/8/6 10:51
 * @description: 订单服务接口
 */
public interface IOrderService {
    /**
     * 用户创建订单
     * @param shopCartReq 请求参数，用户购买哪件商品
     * @return 该用户的订单的信息
     * @throws Exception
     */
    PayOrderRes createOrder(ShopCartReq shopCartReq) throws Exception;


    /**
     * 支付宝回调，付款成功后，将状态改为PAY_SUCESS
     * @param orderId 订单ID
     */
    void changeOrderPaySuccess(String orderId);

    /**
     * 创建订单与支付单1min后，依旧没有回调。这种一般是支付成功，但未回调
     * 那么就有问题了
     * @return
     */
    List<String> queryNoPayNotifyOrder();

    /**
     * 查询超时未支付订单
     * @return
     */
    List<String> queryTimeoutCloseOrderList();
    /**
     * 订单超时未支付，关单处理
     * @param orderId 订单ID
     * @return 是否关单
     */
    boolean changeOrderClose(String orderId);
}
